package com.school.cooperation.common.constant;

/**
 * 错误码常量
 *
 * @author Home School Team
 */
public interface ErrorCode {

    // 成功
    int SUCCESS = 0;

    // 通用错误 (1000-1999)
    int PARAM_ERROR = 1001;
    int SYSTEM_ERROR = 1002;
    int NETWORK_ERROR = 1003;
    int DATA_NOT_FOUND = 1004;
    int OPERATION_FAILED = 1005;
    int UNAUTHORIZED = 1006;
    int FORBIDDEN = 1007;
    int RATE_LIMIT_EXCEEDED = 1008;
    int MAINTENANCE_MODE = 1009;

    // 认证授权错误 (2000-2999)
    int AUTH_ERROR = 2001;
    int TOKEN_EXPIRED = 2002;
    int TOKEN_INVALID = 2003;
    int USERNAME_NOT_FOUND = 2004;
    int PASSWORD_ERROR = 2005;
    int ACCOUNT_LOCKED = 2006;
    int ACCOUNT_DISABLED = 2007;
    int PERMISSION_DENIED = 2008;
    int ROLE_NOT_FOUND = 2009;
    int INVALID_CREDENTIALS = 2010;

    // 用户管理错误 (3000-3999)
    int USER_NOT_FOUND = 3001;
    int USER_ALREADY_EXISTS = 3002;
    int USER_STATUS_ERROR = 3003;
    int USER_CREATION_FAILED = 3004;
    int USER_UPDATE_FAILED = 3005;
    int USER_DELETE_FAILED = 3006;
    int PASSWORD_NOT_MATCH = 3007;
    int PASSWORD_CHANGE_FAILED = 3008;
    int PROFILE_UPDATE_FAILED = 3009;

    // 学生管理错误 (4000-4999)
    int STUDENT_NOT_FOUND = 4001;
    int STUDENT_ALREADY_EXISTS = 4002;
    int STUDENT_CREATION_FAILED = 4003;
    int STUDENT_UPDATE_FAILED = 4004;
    int STUDENT_DELETE_FAILED = 4005;
    int INVALID_STUDENT_ID = 4006;
    int STUDENT_STATUS_ERROR = 4007;
    int DUPLICATE_STUDENT_ID = 4008;
    int DUPLICATE_ID_CARD = 4009;
    int INVALID_ID_CARD = 4010;

    // 班级管理错误 (5000-5999)
    int CLASS_NOT_FOUND = 5001;
    int CLASS_ALREADY_EXISTS = 5002;
    int CLASS_CREATION_FAILED = 5003;
    int CLASS_UPDATE_FAILED = 5004;
    int CLASS_DELETE_FAILED = 5005;
    int CLASS_FULL = 5006;
    int CLASS_EMPTY = 5007;
    int INVALID_CLASS_ID = 5008;
    int CLASS_STATUS_ERROR = 5009;
    int TEACHER_NOT_ASSIGNED = 5010;

    // 档案记录错误 (6000-6999)
    int RECORD_NOT_FOUND = 6001;
    int RECORD_CREATION_FAILED = 6002;
    int RECORD_UPDATE_FAILED = 6003;
    int RECORD_DELETE_FAILED = 6004;
    int RECORD_ACCESS_DENIED = 6005;
    int INVALID_RECORD_TYPE = 6006;
    int RECORD_CONTENT_EMPTY = 6007;
    int RECORD_IMAGES_LIMIT_EXCEEDED = 6008;
    int INVALID_RECORD_ID = 6009;
    int RECORD_NOT_PUBLIC = 6010;

    // 文件操作错误 (7000-7999)
    int FILE_NOT_FOUND = 7001;
    int FILE_UPLOAD_FAILED = 7002;
    int FILE_DELETE_FAILED = 7003;
    int FILE_SIZE_EXCEEDED = 7004;
    int FILE_TYPE_NOT_SUPPORTED = 7005;
    int FILE_ACCESS_DENIED = 7006;
    int STORAGE_SPACE_EXCEEDED = 7007;
    int INVALID_FILE_NAME = 7008;
    int FILE_PROCESSING_FAILED = 7009;
    int FILE_TOO_LARGE = 7010;

    // Excel导入导出错误 (8000-8999)
    int EXCEL_PARSE_ERROR = 8001;
    int EXCEL_FORMAT_ERROR = 8002;
    int EXCEL_DATA_INVALID = 8003;
    int EXCEL_IMPORT_FAILED = 8004;
    int EXCEL_EXPORT_FAILED = 8005;
    int EXCEL_FILE_EMPTY = 8006;
    int EXCEL_SHEET_NOT_FOUND = 8007;
    int EXCEL_ROW_COUNT_EXCEEDED = 8008;
    int EXCEL_COLUMN_MISMATCH = 8009;
    int EXCEL_DATA_DUPLICATE = 8010;

    // 通知相关错误 (9000-9999)
    int NOTIFICATION_NOT_FOUND = 9001;
    int NOTIFICATION_SEND_FAILED = 9002;
    int NOTIFICATION_READ_FAILED = 9003;
    int NOTIFICATION_DELETE_FAILED = 9004;
    int INVALID_NOTIFICATION_ID = 9005;
    int NOTIFICATION_ACCESS_DENIED = 9006;
    int WEBSOCKET_CONNECTION_FAILED = 9007;
    int MESSAGE_SEND_FAILED = 9008;
    int INVALID_MESSAGE_FORMAT = 9009;
    int MESSAGE_QUEUE_FULL = 9010;

    // 系统配置错误 (10000-10999)
    int CONFIG_NOT_FOUND = 10001;
    int CONFIG_UPDATE_FAILED = 10002;
    int INVALID_CONFIG_VALUE = 10003;
    int CONFIG_ACCESS_DENIED = 10004;
    int SYSTEM_BUSY = 10005;
    int SERVICE_UNAVAILABLE = 10006;
    int DATABASE_CONNECTION_FAILED = 10007;
    int REDIS_CONNECTION_FAILED = 10008;
    int MINIO_CONNECTION_FAILED = 10009;
    int EXTERNAL_SERVICE_ERROR = 10010;
}